Displaying an image on an irregular screen

ABSTRACT

Presented here are systems and methods to enable software applications to display images on irregular screen shapes containing the shape without display functionality. In one embodiment, the shape without display functionality is confined within a bounding shape, which, when subtracted from the irregular screen shape leaves a rectangular area of the screen where the image can be displayed. The area within the bounding shape can be occupied by images provided by the operating system associated with the irregular screen, such as a status bar and/or navigation bar. In another embodiment, the image can be displayed on the full irregular screen, such that the shape without display functionality covers a part of the image. When the occluded part of the image contains a critical object, such as a menu item, a button, etc., the image can be modified to move the critical object out of the area occluded by the shape without display functionality.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of the U.S. utility patentapplication claims Ser. No. 15/665,332, filed Jul. 31, 2017, whichclaims priority to the U.S. provisional patent application Ser. No.62/531,560, filed Jul. 12, 2017, and to the U.S. provisional patentapplication Ser. No. 62/528,357, filed Jul. 3, 2017, all of which areincorporated in their entirety by this reference thereto.

TECHNICAL FIELD

The present application is related to electronic displays, and morespecifically to methods and systems that display an image of anirregular screen.

BACKGROUND

Software applications running on various mobile devices expect arectangular screen and are designed without compatibility deviationsfrom this shape. They expect status bar at the top and navigation barcontaining home, back, processes buttons at the bottom in portraitorientation or on the bottom/side in landscape orientation.

SUMMARY

Presented here are systems and methods to enable software applicationsto display images on irregular screen shapes containing the shapewithout display functionality. In one embodiment, the shape withoutdisplay functionality is confined within a bounding shape, which, whensubtracted from the irregular screen shape leaves a rectangular area ofthe screen where the image can be displayed. The area within thebounding shape can be occupied by images provided by the operatingsystem associated with the irregular screen, such as a status bar and/ornavigation bar. In another embodiment, the image can be displayed on thefull irregular screen, such that the shape without display functionalitycovers a part of the image. When the occluded part of the image containsa critical object, such as a message, a menu item, a button, etc., theimage can be modified to move the critical object out of the areaoccluded by the shape without display functionality.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a front view of a mobile device with an irregular screen.

FIG. 2 shows a system to display an image within the irregular screen.

FIGS. 3A-3B show a bounding shape in various orientations of theirregular screen.

FIGS. 4A-4C show a status bar displayed on the irregular screen.

FIG. 5A-5D show an image displayed in fullscreen mode of the regularscreen.

FIG. 6 shows a widget allowing the user to adjust a position of an imagewithin the nonrectangular display area.

FIG. 7 is a flowchart of a method to display an image on anonrectangular display area, according to one embodiment.

FIG. 8 is a flowchart of a method to display an image on anonrectangular display area, according to another embodiment.

FIG. 9 is a diagrammatic representation of a machine in the example formof a computer system within which a set of instructions, for causing themachine to perform any one or more of the methodologies or modulesdiscussed herein, may be executed.

DETAILED DESCRIPTION

Displaying an Image on an Irregular Screen

Presented here are system and methods to enable software applications todisplay images on irregular screen shapes containing the shape withoutdisplay functionality. In one embodiment, the shape without displayfunctionality is confined within a bounding shape, which, whensubtracted from the irregular screen shape leaves a rectangular area ofthe screen where the image can be displayed. The area within thebounding shape can be occupied by images provided by the operatingsystem associated with the irregular screen, such as a status bar and/ornavigation bar. In another embodiment, the image can be displayed on thefull irregular screen, such that the shape without display functionalitycovers a part of the image. When the occluded part of the image containsa critical object, such as a message, a menu item, a button, etc., theimage can be modified to move the critical object out of the areaoccluded by the shape without display functionality.

Software applications running on various mobile devices expect arectangular screen and are designed without compatibility deviationsfrom this shape. They expect status bar at the top and navigation barcontaining home, back, processes buttons at the bottom in portraitorientation or on the bottom/side in landscape orientation. Imagesprovided by the applications can be displayed in three modes: (1)applications are displayed in the area on screen which is rectangularscreen minus the status bar and navigation bar; (2) applications canrequest to be laid out in full screen with transparent status bar; (3)applications, such as games, can request full screen mode where theapplication takes up the full screen without status bar and navigationbar. In case (2), the applications put non-critical content, e.g.objects, like backgrounds or artwork underneath the status bar andnavigation bar, and inset critical elements like messages and buttonswithin the area of the rectangular screen not occupied by the status barand navigation bar.

When the screen is nonrectangular, and includes a shape without displayfunctionality, a processor can configure the status bar in portraitorientation to completely include the shape without displayfunctionality inside the status bar. The processor can modify the statusbar to push critical objects contained in the status bar outside theshape without display functionality. The display with a modified statusbar can be a default display for all applications. Applications in mode(1) and mode (2) can work as is in the remaining area of the screen. Inlandscape orientation, status bar returns to standard mode with standardheight.

When an application requests to be laid out in mode (1), the applicationworks as is in portrait orientation. In landscape orientation, theprocessor can put a bounding shape around the shape without displayfunctionality to create a rectangular area of the screen that theapplication can use to display images.

When applications want to be laid out in mode (2), the processor canprovide an opaque status bar at top instead of transparent status barand provide the application with a rectangular screen area withoutintrusion from the notch. The rectangular screen area can be obtained bythe processor limiting the application to the display area not occupiedby the status bar.

When applications want to be laid out in mode (3), the processor can putthe bounding shape containing a solid color, such as black, at the topof the screen in portrait orientation, or on the side of the screen inlandscape orientation, and provide the application with a rectangularscreen area without intrusion from the shape without the displayfunctionality. The solid color of the bounding shape can be a colorassociated with the color scheme of the application. For example, if theapplication is Gmail, and the color scheme is red and white, the solidcolor can be red or white. In another example, the solid color of thebounding shape can be the color of the application that is closest, interms of screen distance, to the bounding shape.

Some applications that work well in mode (2) or mode (3) are put in apermission list, i.e. a whitelists, that allows the applications toaccess full screen area. There can be multiple permission lists. Onepermission list can allow an application to utilize the full screen areain both landscape orientation and portrait orientation. Anotherpermission list can only allow full screen in portrait orientation, butin landscape orientation, the processor puts the bounding shape aroundthe shape without display functionality. Conversely, yet anotherpermission list can only allow full screen in landscape orientation, butin portrait orientation, the processor puts the bounding box around theshape without display functionality.

Permission lists can be pre-populated based on testing and approval fromthe application developer. Permission lists can also be populated by auser configuring settings associated with the application, or permissionlists can be populated dynamically at runtime by the user. Receiving aninput from the user regarding display settings of an application, allowsthe user to choose the correct way of handling the shape without displayfunctionality, based on circumstance and their preference.

FIG. 1 shows a front view of a mobile device with an irregular screen.The irregular screen 100 contains a nonrectangular display area 110having display functionality. The nonrectangular display 110 areadefines a shape without display functionality 120. The nonrectangulardisplay area 110 covers substantially the full front side of the displaydevice 130. The shape without display functionality 120 can contain asensor, such as a camera, an ambient light sensor, a proximity sensor,etc. The shape without display functionality 120 can be placed at theedge of the screen 100, as shown in FIG. 1, the middle of the screen100, the corner of the screen 100, etc. The shape without displayfunctionality 120 can be any rectilinear shape, curvilinear shape, or amix of a rectilinear shape and a curvilinear shape as shown in FIG. 1.

The irregular screen 100 can display one or more images 140, 150, 160.Image 140 can be provided by an application running on the mobile device130. Images, 150, 160 can be provided by an operating system running onthe mobile device 130. Images 150, 160 can be partially transparent toallow features of image 140 to be visible underneath images 150, 160, asshown in FIG. 1.

Image 150 can be the status bar containing objects such as an iconrepresenting wireless reception 165, and icon representing cell phonereception 170, and icon representing battery power remaining 180, anicon representing time 190, icon representing unread messages 105, etc.Image 160 can be a navigation bar containing objects such as a backbutton 115, a home button 125, and a button 135 to list recentapplications running on the mobile device 130. Object 145 contained inimage 140 is considered to be critical, and cannot be obscured by theshape without display functionality 120. Object 145 can be a menu item,an icon, text, an animated object in the video, a message, a button,etc. An image can contain multiple objects that are considered critical.

FIG. 2 shows a system to display an image within the irregular screen.The system contains a communication module 200, a display module 210, anoptional identification module 220 in communication with thenonrectangular display area 110 and an application 230 providing theimage 140 to the irregular screen 100.

The communication module 200 receives a first image, such as image 140in FIG. 1, to display on the nonrectangular display area. The firstimage 140 includes a first critical object 145 in FIG. 1 occupying afirst portion 155 in FIG. 1 of the first image 140.

The display module 210 displays the first image 140 on thenonrectangular display area 110 in FIG. 1 by modifying the first image140 and placing the first critical object 145 on the nonrectangulardisplay area, the first critical object 145 fully contained within thenonrectangular display area having display functionality. The firstcritical object 145 can be displayed within the nonrectangular displayarea 110 in FIG. 1, without moving the first critical object 145 inrelation to the first image 140.

The identification module 220 identifies the first critical object 145within the image that is considered critical. The identification module220 can identify the critical objects by the object type, such as a menuitem, an icon, a text, an animated object in a video, a message, abutton, etc. Further, the identification module 220 can identify thecritical objects by identifying various objects contained in the image140 and associating identification labels with them using imagerecognition algorithms such as machine learning models. Noncriticalobjects tend to be backgrounds or artwork associated with the image 140.An image can contain multiple objects that are considered critical.

FIGS. 3A-3B show a bounding shape in various orientations of theirregular screen. FIG. 3A shows a portrait orientation of the irregularscreen 100 in FIG. 1, while FIG. 3B shows a landscape orientation of theirregular screen 100. The display module 210 in FIG. 2 determines abounding shape 300 in FIG. 3A, or 320 in FIG. 3B containing the shapewithout display functionality 120. The display module 210 defines arectangular display area 310 in FIG. 3A, or 330 in FIG. 3B bysubtracting the bounding shape 300, 320, respectively, from thenonrectangular display area 110. The bounding shape 300, 320 can becalculated so that the rectangular display area 310, 330 is maximized.The display module 210 displays the image on the rectangular displayarea 310, 330.

FIGS. 4A-4C show a status bar displayed on the irregular screen. FIG. 4Ashows a portrait orientation of the irregular screen 100, while FIG. 4Bshows a landscape orientation of the irregular screen 100. Thecommunication module 200 receives a second image 400, 470 to display onthe nonrectangular display area 110. The second image 400, 470 can bethe status bar image 150 in FIG. 1, and/or the navigation bar image 160in FIG. 1. The second image 400, 470 includes one or more criticalobjects occupying a portion of the second image 400, 470. The criticalobjects can be icons such as an icon representing wireless reception165, an icon representing cell phone reception 170, an icon representingbattery power remaining 180, an icon representing time 190, an iconrepresenting unread messages 105, etc. The critical objects cannot beoccluded by the shape without display functionality 120.

In portrait mode shown in FIG. 4A, the display module 210 determines aposition of the second image 400, 470 on the nonrectangular displayarea, wherein the position encompasses the shape without displayfunctionality 120. When any one of the critical objects 165, 170, 180,190, 105 at least partially overlaps the shape without displayfunctionality 120, the display module 210 modifies the second image 400by moving the overlapping critical object to a different portion of thesecond image 400 to obtain a modified image 410. The display module 210displays the modified image 410 on the nonrectangular display area 110.The display module 210 can make the modified image 410 partiallytransparent when displayed on the nonrectangular display area 110, asshown in FIG. 1, or the display module 210 can make the modified image410 opaque as shown in FIG. 4A.

For example, in FIG. 4A, critical object 105 in the default positionoccupies a portion 420 of the nonrectangular display area 110, andoverlaps the shape without display functionality 120. The display module210 determines an offset from the default portion 420 to locate adifferent portion 430 of the second image 400. The different portion 430of the second image 400 does not overlap the shape without displayfunctionality 120. The offset between default portion 420 and thedifferent portion 430 can be a minimal such that the critical object 105does not overlap the shape without display functionality 120, or, theoffset can be greater than the minimal offset in order to create apleasing layout of the critical objects within the nonrectangulardisplay area 110.

In landscape mode shown in FIG. 4B, the display module 210 can displaythe second image 470 without modification when the second image 470 doesnot overlap the shape without display functionality. In landscape mode,the display module 210 can optionally create a bounding shape 440 inwhich the image 140 is not displayed. The second image 470 can beoverlaid with the bounding shape 440, as shown in FIG. 4B. For example,the second image 470 can be partially transparent in the region 450overlapping the bounding shape 440, or the second image 470 can be fullyopaque in the region 450 overlapping the bounding shape 440. The secondimage 470 can be confined to the rectangular display area 460 outside ofthe bounding shape 440, as shown in FIG. 4C, leaving the region 450occupied by the bounding shape 440. The bounding shape 440 can display asolid color, such as black. The solid color of the bounding shape can bea color associated with the color scheme of the application. Forexample, if the application is Gmail, and the color scheme is red andwhite, the solid color can be red or white. In another example, thesolid color of the bounding shape can be the color of the applicationthat is closest, in terms of screen distance, to the bounding shape.

FIG. 5A-5D show an image displayed in fullscreen mode of the regularscreen. FIG. 5A shows the nonrectangular display area oriented inportrait mode, while FIG. 5B shows the nonrectangular display area 110oriented in landscape mode. The communication module 200 in FIG. 2receives a request from an application 230 in FIG. 2 to display thefirst image 500 on the full nonrectangular display area 110. The displaymodule 210 in FIG. 2 checks a permission list indicating whether theapplication 230 has permission to utilize the full nonrectangulardisplay area 110 in a given orientation. Upon confirming that theapplication 230 is included in the permission list, the display module210 displays the first image 500 on the full nonrectangular display area110. As can be seen in FIG. 5A, a part 510 of the first image 500 isoccluded by the shape without display functionality 120.

In one embodiment, the display module 210 checks whether the part 510occluded by the shape without display functionality 120 contains acritical object. When the occluded part 510 contains a non-criticalobject, or no objects at all, the display module 210 does not modify thefirst image 500, as shown in FIG. 5A. As shown in FIG. 5B, when theoccluded part 510 contains a critical object 550, the display module canmodify the first image 500 to position the critical object 550 away fromthe shape without display functionality 120, to obtain image 540, asshown in FIG. 5B. The movement of the critical object 550 can becalculated to be the minimal movement, which places the critical object550 fully within the nonrectangular display area 110.

In FIG. 5C the nonrectangular display area 110 is oriented in landscapemode, and a different part 530 of the image 520, is obscured by theshape without display functionality 120. The permission list can bespecific to the orientation of the nonrectangular display area 110. Forexample an application 230 can be allowed to display the image 500 infullscreen mode in portrait orientation, but can be prevented fromdisplaying the image 520 in fullscreen in landscape orientation.Conversely, an application can be allowed display the image 520 infullscreen mode in landscape orientation, but can be prevented fromdisplaying the image 500 in fullscreen mode in portrait orientation.Some applications 230 can be allowed to utilize the fullscreen in bothportrait orientation and landscape orientation.

Similarly to portrait orientation, in one embodiment, the display module210 checks whether the part 530 occluded by the shape without displayfunctionality 120 contains a critical object. When the occluded part 530contains a non-critical object, or no objects at all, the display module210 does not modify the first image 520, as shown in FIG. 5C. As shownin FIG. 5D, when the occluded part 530 contains a critical object 570,the display module can modify the first image 520 to position thecritical object 570 away from the shape without display functionality120, to obtain image 580, as shown in FIG. 5D. The movement of thecritical object 570 can be calculated to be the minimal movement, whichplaces the critical object 570 fully within the nonrectangular displayarea 110.

FIG. 6 shows a widget allowing the user to adjust a position of an imagewithin the nonrectangular display area. The communication module 200 inFIG. 2 provides an application 230 in FIG. 2 associated with a user, awidget 600 to adjust a position of the first image 610 within thenonrectangular display area 110. The widget 600 can be a list as shownin FIG. 6, or the widget can be a designated area of the nonrectangulardisplay area 110 that when selected allows the user to position theimage within the nonrectangular display area 110 by dragging the imageon the nonrectangular display area 110.

Once the user specifies a preferred position 620, 630 of the first image610, the communication module 200 receives from the application 230 thepreferred position 620, 630 associated with the application 230. Thepreferred position 620 “letterbox” communicates to the display module210 in FIG. 2 that a bounding shape 300 in FIG. 3A, 320 in FIG. 3B 440in FIG. 4, should be placed around the shape without the displayfunctionality 120. The preferred position 630 communicates to thedisplay module 210 that the application 230 can access the fullscreen ofthe nonrectangular display area 110. The preferred position can alsoallow the user to position the first image 610 so that the image 610occupies only a part of the nonrectangular display 110. For example, theuser can drag the image to the left half of the screen, leaving theright half of the screen occupied by a different image, such as adesktop background, black background, etc. The display module 210displays the first image 610 in the preferred position specified by theuser.

The communication module 200 can track the preferred position 620, 630associated with the application 230 from multiple users specifyingmultiple different preferred positions. From the multiple differentpreferred positions, the display module 210 determines a best preferredposition, which is specified by the highest number of users as thepreferred position. The display module 210 sets the best preferredposition to be the default mode in which the application 230 isdisplayed.

FIG. 7 is a flowchart of a method to display an image on anonrectangular display area, according to one embodiment. In step 700, aprocessor receives a first image 140 in FIG. 1, 500 and FIG. 5, 610 inFIG. 6 to display on a nonrectangular display area 110 in FIG. 1 havinga display functionality. The nonrectangular display area 110 defines ashape without display functionality 120 in FIG. 1. The first image 140,500, 520, 610 includes a first critical object 145 occupying a firstportion of the first image. The first image can include multiplecritical objects. In step 710, the processor displays the first image140, 500, 520, 610 on the nonrectangular display 110 by modifying thefirst image 140, 500, 520, 610 to place the first critical object 145 onthe nonrectangular display area 110. The first critical object 145 isfully contained within the nonrectangular display area having displayfunctionality, without overlapping the shape without displayfunctionality 120.

To modify the first image 140, 500, 610, the processor can determine abounding shape 300 and FIG. 3, 440 in FIG. 4A-4B containing the shapewithout display functionality 120. The processor, then, defines arectangular display area 310 in FIG. 3A, 320, in FIG. 3B, 450 FIG. 4B,by subtracting the bounding shape 300, 320, 440 from the nonrectangulardisplay 110. The resulting rectangular display area 310, 330, 450 can bethe maximum rectangular display area not containing the shape withoutdisplay functionality 120. The processor displays the first image 140,500, 520, 610 within the rectangular display area 310, 330, 450.

To modify the first image 140, 500, 610, the processor can receive arequest from an application 230 in FIG. 2 to display the first image140, 500, 520, 610 on the full nonrectangular display area 110. Beforeresponding affirmatively to the request, the processor can check apermission list indicating whether the application 230 has permission toutilize the full nonrectangular display area 110. Upon confirming thatthe application 230 is included in the permission list, the processorcan display the first image 140, 500, 520, 610 on the fullnonrectangular display area 110. When the first image 140, 500, 520, 610is displayed on the full nonrectangular display area 110, a part 510,530 in FIG. 5 of the first image 140, 500, 520, 610 is occluded by theshape without display functionality 120. If the parts 510, 530 to beoccluded are determined to contain a critical object, the processor canmove the critical object so that the critical object is not occluded bythe shape without display functionality 120.

To modify the first image 140, 500, 610, the processor can determine anorientation of the nonrectangular display area 110. The orientation canbe a portrait orientation and a landscape orientation. Based on theorientation of the nonrectangular display area 110, the processor canmodify at least one of the first image 140, 500, 520, 610 or thenonrectangular display area 110.

For example, to modify the first image 140, 500, 610, based on theorientation, the processor can receive a request from an application 230to display the first image 140, 500, 520, 610 on the full nonrectangulardisplay area 110. The processor can check a permission list associatedwith the orientation of the nonrectangular display area 110. Thepermission list can indicate whether the application 230 has permissionto utilize the full nonrectangular display area 110 when thenonrectangular display area 110 is associated with the determinedorientation. Upon confirming that the application 230 is included in thepermission list associated with the orientation of the nonrectangulardisplay area, the processor can display the first image 140, 500, 520,610 on the full nonrectangular display area 110. Parts 510, 530 of thefirst image 140, 500, 520, 610 can be occluded by the shape withoutdisplay functionality 120.

As explained in this application, the permission list can be orientationdependent. One permission list can only allow full screen in portraitorientation, but in landscape orientation, the processor puts thebounding shape around the shape without display functionality 120, andallows the application 230 only to access the rectangular display area330, 450. Conversely, another permission list can only allow full screenin landscape orientation, but in portrait orientation, the processorputs the bounding box around the shape without display functionality120, and allows the application 230 only to access the rectangulardisplay area 310.

In addition to step 700 and, 710 above, the processor can also receive asecond image 400 in FIG. 4A, 470 in FIG. 4B, to display on thenonrectangular display area 110. The second image 400, 470 includes asecond critical object 165, 170, 180, 190, 105 in FIG. 1, occupying aportion of the second image 400, 470. The processor determines aposition of the second image 400, 470 on the nonrectangular display area110 such that the position encompasses the shape without displayfunctionality 120. When the second critical object 105 at leastpartially overlaps the shape without display functionality 120 in thedefault position 420, the processor modifies the second image 400 bymoving the second critical object to a different portion 430 of thesecond image 400. When the second critical object 105 does not overlapthe shape without display functionality 120, the processor can leave thesecond image 470 unmodified. The different portion 430 of the secondimage 400 does not overlap the shape without display functionality 120.The processor displays the modified image 410 on the nonrectangulardisplay area 110. The second image 400, 470 can be a mobile devicestatus bar 150 in FIG. 1, 400 in FIG. 4A, 470 in FIG. 4B, a mobiledevice navigation bar 160 FIG. 1, an image supplied by the operatingsystem of the device, and/or an image supplied by the application 230,etc. The processor can transparently overlay the second image 400, 470on the first image 140, 500, 610.

The processor can identify the first critical object within the image.The first critical object can be a menu item, a graphical user interfacebutton, or a shape recognized by an image recognition algorithms such asa machine learning algorithm. For example the first critical object canbe a human face, an animal, a flower, etc.

The processor can provide to an application 230 associated with a user awidget 600 in FIG. 6 to adjust a position of the first image 140, 500,520, 610 within the nonrectangular display area 110. The widget 600 canbe a list, a widget receiving a gestural input, a voice activatedwidget, etc. The processor receives from the application 230 a preferredposition 620, 630 in FIG. 6 associated with the application 230. Theprocessor displays the first image 140, 500, 520, 610 in the preferredposition 620, 630.

Further, the processor can track the preferred position associated withthe application 230 specified by multiple users defining multiplepreferred positions. The processor can determine the best preferredposition, which is a position specified by the highest number of usersas the preferred position. The processor can create a default positionfor all the users to be the best preferred position, so that when a userhas not defined a preferred position, the processor displays the image140, 500, 520, 610 in the best preferred position.

FIG. 8 is a flowchart of a method to display an image on anonrectangular display area, according to another embodiment. In step800, processor receives a first image 140 in FIG. 1, 500 and FIG. 5, 610in FIG. 6 to display on a nonrectangular display area 110 in FIG. 1having a display functionality. The nonrectangular display area 110defines a shape without display functionality 120 in FIG. 1. The firstimage 140, 500, 520, 610 includes a first critical object 145 occupyinga first portion of the first image. The first image can include multiplecritical objects.

In step 810, the processor receives a second image 400 in FIG. 4A, 470in FIG. 4B, to display on the nonrectangular display area 110. Thesecond image 400, 470 includes a second critical object 165, 170, 180,190, 105 in FIG. 1 occupying a second portion of the second image 400,470.

In step 820, the processor determines a position of the second image400, 470 on the nonrectangular display area 110 such that the positionencompasses the shape without display functionality 120. In step 830,when the second critical object 105 at least partially overlaps theshape without display functionality 120 in the default position 420, theprocessor modifies the second image 400 by moving the second criticalobject to a different portion 430 of the second image 400. The differentportion 430 of the second image 400 does not overlap the shape withoutdisplay functionality 120.

In step 830, the processor displays the first image 140, 500, 520, 610and the second image 400, 470 on the nonrectangular display area 110.The first critical object 145 and the second critical object 165, 170,180, 190, 105 are fully contained in the in the nonrectangular display110 area having display functionality.

Computer

FIG. 9 is a diagrammatic representation of a machine in the example formof a computer system 900 within which a set of instructions, for causingthe machine to perform any one or more of the methodologies or modulesdiscussed herein, may be executed.

In the example of FIG. 9, the computer system 900 includes a processor,memory, non-volatile memory, and an interface device. Various commoncomponents (e.g., cache memory) are omitted for illustrative simplicity.The computer system 900 is intended to illustrate a hardware device onwhich any of the components described in the example of FIGS. 1-8 (andany other components described in this specification) can beimplemented. The computer system 900 can be of any applicable known orconvenient type. The components of the computer system 900 can becoupled together via a bus or through some other known or convenientdevice.

The processor in FIG. 9 can be the processor on which the communicationmodule 200 in FIG. 2 the display module 210 in FIG. 2, theidentification module 220 in FIG. 2, and the application 230 in FIG. 2operate. The video display in FIG. 9 can be the nonrectangular displayarea 110 in FIG. 1.

This disclosure contemplates the computer system 900 taking any suitablephysical form. As example and not by way of limitation, computer system900 may be an embedded computer system, a system-on-chip (SOC), asingle-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, or a combination of two or more ofthese. Where appropriate, computer system 900 may include one or morecomputer systems 900; be unitary or distributed; span multiplelocations; span multiple machines; or reside in a cloud, which mayinclude one or more cloud components in one or more networks. Whereappropriate, one or more computer systems 900 may perform withoutsubstantial spatial or temporal limitation one or more steps of one ormore methods described or illustrated herein. As an example and not byway of limitation, one or more computer systems 900 may perform in realtime or in batch mode one or more steps of one or more methods describedor illustrated herein. One or more computer systems 900 may perform atdifferent times or at different locations one or more steps of one ormore methods described or illustrated herein, where appropriate.

The processor may be, for example, a conventional microprocessor such asan Intel Pentium microprocessor or Motorola power PC microprocessor. Oneof skill in the relevant art will recognize that the terms“machine-readable (storage) medium” or “computer-readable (storage)medium” include any type of device that is accessible by the processor.

The memory is coupled to the processor by, for example, a bus. Thememory can include, by way of example but not limitation, random accessmemory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). Thememory can be local, remote, or distributed.

The bus also couples the processor to the non-volatile memory and driveunit. The non-volatile memory is often a magnetic floppy or hard disk, amagnetic-optical disk, an optical disk, a read-only memory (ROM), suchas a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or anotherform of storage for large amounts of data. Some of this data is oftenwritten, by a direct memory access process, into memory during executionof software in the computer 900. The non-volatile storage can be local,remote, or distributed. The non-volatile memory is optional becausesystems can be created with all applicable data available in memory. Atypical computer system will usually include at least a processor,memory, and a device (e.g., a bus) coupling the memory to the processor.

Software is typically stored in the non-volatile memory and/or the driveunit. Indeed, storing and entire large program in memory may not even bepossible. Nevertheless, it should be understood that for software torun, if necessary, it is moved to a computer readable locationappropriate for processing, and for illustrative purposes, that locationis referred to as the memory in this paper. Even when software is movedto the memory for execution, the processor will typically make use ofhardware registers to store values associated with the software, andlocal cache that, ideally, serves to speed up execution. As used herein,a software program is assumed to be stored at any known or convenientlocation (from non-volatile storage to hardware registers) when thesoftware program is referred to as “implemented in a computer-readablemedium.” A processor is considered to be “configured to execute aprogram” when at least one value associated with the program is storedin a register readable by the processor.

The bus also couples the processor to the network interface device. Theinterface can include one or more of a modem or network interface. Itwill be appreciated that a modem or network interface can be consideredto be part of the computer system 900. The interface can include ananalog modem, isdn modem, cable modem, token ring interface, satellitetransmission interface (e.g. “direct PC”), or other interfaces forcoupling a computer system to other computer systems. The interface caninclude one or more input and/or output devices. The I/O devices caninclude, by way of example but not limitation, a keyboard, a mouse orother pointing device, disk drives, printers, a scanner, and other inputand/or output devices, including a display device. The display devicecan include, by way of example but not limitation, a cathode ray tube(CRT), liquid crystal display (LCD), or some other applicable known orconvenient display device. For simplicity, it is assumed thatcontrollers of any devices not depicted in the example of FIG. 9 residein the interface.

In operation, the computer system 900 can be controlled by operatingsystem software that includes a file management system, such as a diskoperating system. One example of operating system software withassociated file management system software is the family of operatingsystems known as Windows® from Microsoft Corporation of Redmond, Wash.,and their associated file management systems. Another example ofoperating system software with its associated file management systemsoftware is the Linux™ operating system and its associated filemanagement system. The file management system is typically stored in thenon-volatile memory and/or drive unit and causes the processor toexecute the various acts required by the operating system to input andoutput data and to store data in the memory, including storing files onthe non-volatile memory and/or drive unit.

Some portions of the detailed description may be presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or “generating” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the methods of some embodiments. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the techniques are not described withreference to any particular programming language, and variousembodiments may thus be implemented using a variety of programminglanguages.

In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in a client-server network environment, or as a peermachine in a peer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a laptop computer, a set-top box (STB), apersonal digital assistant (PDA), a cellular telephone, an iPhone, aBlackberry, a processor, a telephone, a web appliance, a network router,switch or bridge, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine.

While the machine-readable medium or machine-readable storage medium isshown in an exemplary embodiment to be a single medium, the term“machine-readable medium” and “machine-readable storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” and “machine-readable storage medium” shallalso be taken to include any medium that is capable of storing, encodingor carrying a set of instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies ormodules of the presently disclosed technique and innovation.

In general, the routines executed to implement the embodiments of thedisclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions set at various times invarious memory and storage devices in a computer, and that, when readand executed by one or more processing units or processors in acomputer, cause the computer to perform operations to execute elementsinvolving the various aspects of the disclosure.

Moreover, while embodiments have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various embodiments are capable of beingdistributed as a program product in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include but are not limitedto recordable type media such as volatile and non-volatile memorydevices, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks, (DVDs), etc.), among others, and transmission type media such asdigital and analog communication links.

In some circumstances, operation of a memory device, such as a change instate from a binary one to a binary zero or vice-versa, for example, maycomprise a transformation, such as a physical transformation. Withparticular types of memory devices, such a physical transformation maycomprise a physical transformation of an article to a different state orthing. For example, but without limitation, for some types of memorydevices, a change in state may involve an accumulation and storage ofcharge or a release of stored charge. Likewise, in other memory devices,a change of state may comprise a physical change or transformation inmagnetic orientation or a physical change or transformation in molecularstructure, such as from crystalline to amorphous or vice versa. Theforegoing is not intended to be an exhaustive list in which a change instate for a binary one to a binary zero or vice-versa in a memory devicemay comprise a transformation, such as a physical transformation.Rather, the foregoing is intended as illustrative examples.

A storage medium typically may be non-transitory or comprise anon-transitory device. In this context, a non-transitory storage mediummay include a device that is tangible, meaning that the device has aconcrete physical form, although the device may change its physicalstate. Thus, for example, non-transitory refers to a device remainingtangible despite this change in state.

Remarks

The language used in the specification has been principally selected forreadability and instructional purposes, and it may not have beenselected to delineate or circumscribe the inventive subject matter. Itis therefore intended that the scope of the invention be limited not bythis Detailed Description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of variousembodiments is intended to be illustrative, but not limiting, of thescope of the embodiments, which is set forth in the following claims.

1. A method to display an image on a nonrectangular display area, themethod comprising: receiving the image to display on the nonrectangulardisplay area having a display functionality, the nonrectangular displayarea defining a shape without display functionality, wherein a region ofthe image corresponds to the shape without display functionality;determining that the region of the image corresponding to the shapewithout display functionality comprises a portion of a noncriticalregion by categorizing the region as the noncritical region when theregion comprises an ornamental feature of the image, wherein thenoncritical region can be displayed at least partially occluded; anddisplaying the image on the nonrectangular display area at leastpartially including the noncritical region of the image.
 2. A methodcomprising: receiving an image to display on a nonrectangular displayarea having a display functionality, the nonrectangular display areadefining a shape without display functionality, wherein a region of theimage corresponds to the shape without display functionality;determining that the region of the image corresponding to the shapewithout display functionality comprises a portion of a noncriticalregion, wherein the noncritical region can be displayed at leastpartially occluded; and displaying the image on the nonrectangulardisplay area without adjusting a position of the noncritical regionwithin the image.
 3. The method of claim 2, said determining comprising:categorizing the region of the image corresponding to the shape withoutdisplay functionality as the noncritical region when the regioncomprises a background of the image, or an ornamental feature of theimage.
 4. The method of claim 2, said determining comprising:categorizing the region of the image corresponding to the shape withoutdisplay functionality as a critical region when the region comprises afunctional feature of the image.
 5. The method of claim 2, the shapewithout display functionality comprising a rectilinear shape, acurvilinear shape, or a combination of the rectilinear and thecurvilinear shape.
 6. The method of claim 2, the image comprising astatus bar or a navigation bar.
 7. The method of claim 2, saiddisplaying the image of the nonrectangular display area comprising:determining a bounding shape containing the shape without displayfunctionality; defining a rectangular display area by subtracting thebounding shape from the nonrectangular display area; and displaying theimage within the rectangular display area.
 8. The method of claim 2,said displaying the image of the nonrectangular display area comprising:receiving a second image to display on the nonrectangular display area;and at least partially overlaying the second image on the image byadjusting a transparency of the second image and displaying both theimage and the second image partially occluded by the shape withoutdisplay functionality.
 9. The method of claim 8, wherein the secondimage comprises a second critical object occupying a second portion ofthe second image, the method comprising: determining a position of thesecond image on the nonrectangular display area, wherein the positionencompasses the shape without display functionality; when the secondcritical object at least partially overlaps the shape without displayfunctionality, modifying the second image by moving the second criticalobject to a different portion of the second image, wherein the differentportion of the second image does not overlap the shape without displayfunctionality; and displaying the modified image on the nonrectangulardisplay area.
 10. The method of claim 2, said modifying comprising:receiving a request from an application to display the image on a fullnonrectangular display area; checking a permission list indicatingwhether the application has permission to utilize the fullnonrectangular display area; and upon confirming that the application isincluded in the permission list, displaying the image on the fullnonrectangular display area, said displaying comprising occluding a partof the image by the shape without display functionality.
 11. The methodof claim 2, said modifying comprising: receiving a request from anapplication to display the image on a full nonrectangular display area;determining an orientation of the nonrectangular display area, theorientation comprising a portrait and a landscape; checking a permissionlist associated with the orientation of the nonrectangular display area,the permission list indicating whether the application has permission toutilize the full nonrectangular display area when the nonrectangulardisplay area is associated with the determined orientation; and uponconfirming that the application is included in the permission listassociated with the orientation of the nonrectangular display area,displaying the image on the full nonrectangular display area, saiddisplaying comprising occluding a part of the image by the shape withoutdisplay functionality.
 12. The method of claim 2, comprising: providingto an application associated with a user a widget to adjust a positionof the image within the nonrectangular display area; receiving from theapplication a preferred position associated with the application; anddisplaying the image in the preferred position.
 13. The method of claim12, comprising: tracking the preferred position associated with theapplication; based on a plurality of preferred positions associated witha plurality of users, determining a best preferred position, wherein thebest preferred position is specified by the highest number of users inthe plurality of users; and specifying a default display associated withthe application to be the best preferred position.
 14. A systemcomprising: a nonrectangular display area having a displayfunctionality, the nonrectangular display area defining a shape withoutdisplay functionality; a processor associated with the nonrectangulardisplay area; a storage medium storing computer-executable instructionsthat, when executed by the processor, cause the system to perform acomputer-implemented operation, the instructions comprising:instructions for receiving an image to display on the nonrectangulardisplay area having a display functionality, the nonrectangular displayarea defining the shape without display functionality, wherein a regionof the image corresponds to the shape without display functionality;instructions for determining that the region of the image correspondingto the shape without display functionality comprises a portion of anoncritical region, wherein the noncritical region can be displayed atleast partially occluded; and instructions for displaying the image onthe nonrectangular display area without adjusting a position of thenoncritical region within the image.
 15. The system of claim 14, theinstructions comprising: instructions for categorizing the region of theimage corresponding to the shape without display functionality as thenoncritical region when the region comprises a background of the image,or an ornamental feature of the image.
 16. The system of claim 14, theshape without display functionality comprising a rectilinear shape, acurvilinear shape, or a combination of the rectilinear and thecurvilinear shape.
 17. The system of claim 14, the image comprising astatus bar or a navigation bar.
 18. The system of claim 14, theinstructions comprising: instructions for receiving a second image todisplay on the nonrectangular display area; and instructions foroverlaying the second image on the image by adjusting a transparency ofthe second image and displaying both the image and the second image onthe nonrectangular display area partially occluded by the shape withoutdisplay functionality.
 19. The system of claim 14, the instructionscomprising: instructions for receiving a second image to display on thenonrectangular display area, wherein the second image comprises a secondcritical object occupying a second portion of the second image;instructions for determining a position of the second image on thenonrectangular display area, wherein the position encompasses the shapewithout display functionality; when the second critical object at leastpartially overlaps the shape without display functionality, instructionsfor modifying the second image by moving the second critical object to adifferent portion of the second image, wherein the different portion ofthe second image does not overlap the shape without displayfunctionality; and displaying the modified image on the nonrectangulardisplay area.
 20. The system of claim 14, the instructions comprising:instructions for receiving a request from an application to display theimage on a full nonrectangular display area; instructions for checking apermission list indicating whether the application has permission toutilize the full nonrectangular display area; and upon confirming thatthe application is included in the permission list, instructions fordisplaying the image on the full nonrectangular display area, saiddisplaying comprising occluding a part of the image by the shape withoutdisplay functionality.
 21. The system of claim 14, the instructionscomprising: instructions for providing to an application associated witha user a widget to adjust a position of the image within thenonrectangular display area; instructions for receiving from theapplication a preferred position associated with the application; andinstructions for displaying the image in the preferred position.
 22. Thesystem of claim 22, the instructions comprising: instructions fortracking the preferred position associated with the application; basedon a plurality of preferred positions associated with a plurality ofusers, instructions for determining a best preferred position, whereinthe best preferred position is specified by the highest number of usersin the plurality of users; and instructions for specifying a defaultdisplay associated with the application to be the best preferredposition.